Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-PRD-006 |
| Deskripsi | Program pakan (feeding program) peternakan: menyusun rencana pakan dan perkiraan hasil telur per ayam per hari untuk rentang usia dan batch ayam tertentu, ditampilkan dalam timeline per kandang, dan menjadi dasar pembuatan otomatis rencana produksi telur |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User melihat timeline program pakan: baris berisi mesin peternakan (nama layer dan lokasi kandang) dikelompokkan per work center, kolom berisi usia ayam dalam hari.
- User mengatur rentang usia ayam yang ditampilkan (default 1 sampai 30 hari).
- User membuat program pakan baru dengan memilih rentang usia pada timeline, lalu mengisi nama program, batch ayam, rencana pakan per ayam per hari, SKU hasil telur, perkiraan hasil telur dalam kilogram dan butir, serta opsi perkiraan overhead bulanan.
- User melihat ringkasan program: cluster, cabang, work center, populasi ayam, total pakan, dan perkiraan hasil telur.
- User menghapus program pakan.
- Program pakan menjadi sumber pembuatan otomatis rencana produksi telur (lihat VBS-PRD-005).
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | Sistem menampilkan seluruh mesin peternakan tanpa pagination, dikelompokkan per work center, sebagai baris timeline |
| FR-02 | Sistem menampilkan program pakan yang beririsan dengan rentang usia terpilih sebagai badge pada baris mesin |
| FR-03 | User dapat mengubah rentang usia tampilan dengan awal dan akhir hari wajib diisi dan awal lebih kecil dari akhir |
| FR-04 | User dapat memilih rentang sel pada timeline untuk membuka form Program Baru dengan usia dan mesin terpilih |
| FR-05 | Form Program Baru mewajibkan nama program dan batch ayam, serta mendukung beberapa baris pakan dengan jumlah per ayam per hari |
| FR-06 | Form menyediakan SKU hasil telur, perkiraan hasil per ayam per hari dalam kilogram dan butir (minimal 0,005), dan opsi perkiraan overhead bulanan |
| FR-07 | User dapat melihat detail program dengan perhitungan pakan total berdasarkan populasi ayam di mesin |
| FR-08 | User dapat menghapus program pakan |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Melihat timeline program pakan per kandang |
| UC-02 | Mengatur rentang usia ayam pada timeline |
| UC-03 | Membuat program pakan baru |
| UC-04 | Melihat detail program pakan |
| UC-05 | Menghapus program pakan |
4. Use Case Scenario
UC-01 : Melihat timeline program pakan per kandang
| Aktor | User peternakan |
| Deskripsi | User melihat program pakan yang berlaku untuk setiap kandang berdasarkan usia ayam |
| Prekondisi | User sudah login dan memilih brand peternakan Mesin peternakan sudah terdaftar |
| Alur utama | 1. User membuka halaman Program Pakan. 2. Sistem memuat seluruh mesin peternakan dan mengelompokkannya per work center. 3. Sistem memuat program pakan untuk rentang usia default. 4. Sistem menampilkan badge nama program pada sel usia yang sesuai. |
| Alur negatif | - Jika gagal memuat mesin, timeline kosong dan muncul pesan error dari BE. - Jika gagal memuat program, timeline tampil tanpa badge. |
| Bisnis rule | - Rentang usia default 1 sampai 30 hari. - Kolom kiri menampilkan nama mesin dan nama work center (tanda strip bila kosong). |
| Postkondisi | Timeline program pakan tampil |
| Trigger | User membuka halaman Program Pakan |
| Kode FR | FR-01 FR-02 |
UC-02 : Mengatur rentang usia ayam pada timeline
| Aktor | User peternakan |
| Deskripsi | User mengubah rentang usia ayam yang ditampilkan di timeline |
| Prekondisi | Timeline sudah tampil |
| Alur utama | 1. User klik field Usia Ayam. 2. User mengisi awal hari dan akhir hari. 3. User klik tombol centang. 4. Sistem memuat ulang program pakan sesuai rentang baru. |
| Alur negatif | - Jika awal atau akhir hari kosong, muncul "Awal Hari dan Akhir Hari tidak boleh kosong!". - Jika awal hari tidak lebih kecil dari akhir hari, muncul "Akhir Hari tidak boleh lebih besar dari Awal Hari!". |
| Bisnis rule | - Lebar timeline menyesuaikan jumlah hari pada rentang. |
| Postkondisi | Timeline menampilkan rentang usia baru |
| Trigger | User klik tombol centang |
| Kode FR | FR-03 |
UC-03 : Membuat program pakan baru
| Aktor | User peternakan |
| Deskripsi | User menyusun rencana pakan dan perkiraan hasil telur per ayam per hari untuk rentang usia tertentu |
| Prekondisi | Timeline sudah tampil |
| Alur utama | 1. User klik sel awal lalu sel akhir pada timeline. 2. Sistem membuka form Program Baru dengan rentang usia dari pilihan. 3. User mengisi nama program dan memilih batch ayam. 4. User mengisi rencana pakan per ayam per hari (SKU pakan dan jumlah), dapat menambah atau menghapus baris. 5. User memilih SKU hasil telur dan mengisi perkiraan hasil dalam kilogram dan butir. 6. User mengaktifkan perkiraan overhead bulanan bila perlu. 7. User klik Simpan. 8. Sistem menyimpan program dan menampilkan "Berhasil Buat Feeding Program". |
| Alur negatif | - Jika field wajib kosong, muncul "Oops, ada form yang belum diisi dengan benar!". - Jika nama program kosong, muncul "Nama Program harus di isi". - Jika batch ayam kosong, muncul "Batch Ayam harus di isi". - Jika hasil telur di bawah minimum, muncul "Hasil Telur minimal 0.005". - Jika usia awal lebih besar dari usia akhir, muncul "Oops, start_age tidak boleh lebih besar dari end_age!". - Jika simpan gagal, muncul pesan error dari BE. |
| Bisnis rule | - Default jumlah pakan 0,11 per ayam per hari, hasil telur 0,055 kg dan 0,9 butir per ayam per hari. - Hasil telur disimpan dengan pembagian HPP 100%. - Beberapa batch ayam disimpan sebagai daftar mesin dalam satu program. - Pilihan SKU hasil dicari dengan kata kunci telur. |
| Postkondisi | Program pakan tersimpan dan dapat dipakai untuk membuat rencana produksi telur |
| Trigger | User klik Simpan pada form Program Baru |
| Kode FR | FR-04 FR-05 FR-06 |
UC-04 : Melihat detail program pakan
| Aktor | User peternakan |
| Deskripsi | User melihat isi program pakan pada kandang tertentu |
| Prekondisi | Badge program tampil di timeline |
| Alur utama | 1. User klik badge program. 2. Sistem memuat detail program. 3. Sistem menampilkan cluster, cabang, nama program, rentang usia, work center, populasi, total pakan per hari, serta perkiraan hasil telur dalam butir dan kilogram. |
| Alur negatif | - Jika detail gagal dimuat, muncul pesan error dari BE. |
| Bisnis rule | - Populasi dihitung dari jumlah awal dikurangi rusak dan terjual pada mesin. - Total pakan = jumlah per ayam dikali populasi, satuan per ekor untuk mesin Petelur dan per PCS untuk lainnya. - Cluster kosong ditampilkan sebagai "Cluster Tidak Diisi". |
| Postkondisi | Detail program tampil |
| Trigger | User klik badge program |
| Kode FR | FR-07 |
UC-05 : Menghapus program pakan
| Aktor | User peternakan |
| Deskripsi | User menghapus program pakan yang tidak dipakai |
| Prekondisi | Detail program sedang dibuka |
| Alur utama | 1. User klik Hapus pada modal detail. 2. Sistem menghapus program dan menutup modal. |
| Alur negatif | - Jika gagal, muncul pesan error dari BE. |
| Bisnis rule | - Hapus dilakukan tanpa konfirmasi tambahan. |
| Postkondisi | Program pakan terhapus |
| Trigger | User klik Hapus |
| Kode FR | FR-08 |
5. Data Flow Diagram
DFD-01
6. Sequence Diagram
SD-01 — UC-01 : Melihat timeline program pakan per kandang
SD-02 — UC-02 : Mengatur rentang usia ayam pada timeline
SD-03 — UC-03 : Membuat program pakan baru
SD-04 — UC-04 : Melihat detail program pakan
SD-05 — UC-05 : Menghapus program pakan
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /mesin | existing | - |
GET /feeding-program | existing | - |
GET /feeding-program/:id | existing | - |
POST /feeding-program | existing | - |
DELETE /feeding-program/:id | existing | - |
GET /cluster/:id | existing | - |